package thread3;

import java.util.Scanner;

public class Demo17 {
    private static volatile int isQuit = 0;// volatile 确定不会对isQuit进行内存略读

    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            while (isQuit == 0) {
                // 循环体里啥都没干,此时意味着这个循环,一秒钟就会执行很多很多次
                // 编译器在单线程视野内 对内存无变的isQuit 可能会 只首读不变的一次,以略读来提升效率
            }
            System.out.println("t1 退出!");
        });
        t1.start();

        Thread t2 = new Thread(() -> {
            System.out.println("请输入 isQuit: ");
            Scanner scanner = new Scanner(System.in);
            // 一旦用户输入的值不为0 就会使t1线程执行结束
            isQuit = scanner.nextInt();
        });
        t2.start();
    }
}
